# track the last used value so that we don't trigger too many watches.
xoptions = XendOptions.instance()
+ dom0 = XendDomain.instance().privilegedDomain()
xc = xen.lowlevel.xc.xc()
+ dom0_start_alloc_mb = get_dom0_current_alloc() / 1024
try:
dom0_min_mem = xoptions.get_dom0_min_mem() * 1024
new_alloc_mb = new_alloc / 1024 # Round down
log.debug("Balloon: setting dom0 target to %d MiB.",
new_alloc_mb)
- dom0 = XendDomain.instance().privilegedDomain()
dom0.setMemoryTarget(new_alloc_mb)
last_new_alloc = new_alloc
# Continue to retry, waiting for ballooning or scrubbing.
(need_mem, dom0_min_mem, dom0_min_mem,
free_mem + scrub_mem + dom0_alloc - dom0_min_mem))
else:
- raise VmError('The privileged domain did not balloon!')
+ dom0.setMemoryTarget(dom0_start_alloc_mb)
+ raise VmError(
+ ('Not enough memory is available, and dom0 cannot'
+ ' be shrunk any further'))
finally:
del xc